The color balance of a digital image can be manually adjusted through a user interface element, such as an exposure control, or by specifying one or more reference values, such as a black point, a white point, or a gray point. These adjustments modify one or more tone values for an entire image, instead of altering pixels at a specific location within an image. Thus, visual aspects of a digital image, such as contrast and brightness, can be adjusted through a small number of inputs.
A curve is an image adjustment tool that can be used to graphically represent an image characteristic, such as tonality. The curve can be represented in a two-dimensional format, such as a chart with an x-axis (abscissa) and a y-axis (ordinate). For instance, the x-axis can represent the input values (or levels) associated with an image and the y-axis can represent the corresponding output values.
The graph in which the curve is represented further can be arranged such that the zero point on an axis represents pure black, or the black point. Also, a value of one on an axis can represent pure white, or the white point. With reference to an eight-bit color scheme, a value of zero can correspond to pure black and a value of 255 can correspond to pure white. In a normalized graph, the curve can be a diagonal line that extends from the origin (0, 0) to the intersection of the maximum value at (1, 1). Thus, for each point along the curve, the input value equals the output value and there is no change to the tonal values of the image.
Either or both of the black point and the white point can be adjusted toward the center of an axis. For instance, moving the white point toward the center of the x-axis causes all of the input values to the right of the adjusted white point to be pure white output values, thereby increasing the contrast in the image. Conversely, moving the white point toward the center of the y-axis causes all output values to be less than pure white, including pure white input values. As a result, contrast in the image is reduced. Adjusting the black point with respect to an axis also affects the level of contrast in an image. Moving the black point toward the center of the x-axis causes more output values to be pure black, which decreases brightness. Further, moving the black point toward the center of the y-axis means that no output values will be pure black, which increases brightness. In one technique, contrast can be increased by setting the black point just below the darkest tones included in the image and by setting the white point just above the lightest tones in the image.
Further, the curve itself can be modified at one or more points. For instance, an anchor (or knot) can be defined on the curve and can be used to pull the curve up, causing at least a portion of the input values to have higher corresponding output values. As a result, brightness can be increased for at least a portion of the image. An anchor on the curve also can be used to pull the curve down, causing at least a portion of the input values to have lower corresponding output values. As a result, brightness can be reduced for at least a portion of the image.